1. Field of the Invention
The present invention relates to a computation apparatus in which a programmable logic controller is implemented and in which a system that is subordinate to the programmable logic controller with respect to a memory access operation is implemented, where a memory to which a component of the programmable logic controller has access is integrated in the programmable logic controller. The present invention also relates to a method for operating the computation apparatus.
2. Description of the Related Art
The virtualization of a system in information technology began over 10 years ago. As it spreads, virtualization in general and real-time virtualization in particular can be found in the field of automation. However, various problems arise from the interplay between real-time systems and virtualization solutions. Firstly, expectations relating to time differ.
Where a real-time system expects a very precise execution, with a virtualized system it is by all means possible to dispense with several seconds of computing time. This requires asynchronous execution of both systems. Secondly, problems come to light as soon as shared data is to be used by both the real-time system and the virtual machines, and this occurs in particular if an interface for control and monitoring (CaM) of the real-time system is described in the virtual machine. However, the combination of a real-time controller and a virtual system with CaM components is desirable since both systems can be operated separately from each other in this way. By way of example, a change in the real-time system only has an effect on the CaM to the extent that a suitable hypervisor (abstraction layer) has to be implemented. It is possible to continue to use customized CaM components, such as operating consoles or touchscreens unchanged as a result of the abstraction. On the other hand, program errors in the CaM system, which lead to impairment of the underlying operating system, do not affect the real-time system, so additional stability is obtained. Finally, the time-related aspects continue to be an unresolved problem which can make communication between the systems difficult.
Similar problems exist with the coupling of CaM systems and controllers, the advantage existing here of these systems usually being operated on separate computers. A system comprising a controller and CaM on a system with the arrangement mentioned above would therefore be most comparable. Nevertheless, with the combination of a controller and CaM there is the advantage that different time bases are not used here and the same operating system is utilized. The problem described above did not previously exist therefore. This is explained by the nascent spread of virtualization in the world of automation, with which primarily previously unused processor times are avoided. However, joint and potentially conflicting data access operations are a known problem in connection with real-time systems. This can be remedied by the use of synchronization mechanisms (semaphores, Mutex) or the allocation of exclusive access times in the case of synchronous systems. These methods can basically also still be used but throw up hitherto unresolved problems if a programmable logic controller (PLC) cooperates with a virtual machine. These problems are due to the fact that the PLC does not work with constant cycle times, and the memory access operations by the PLC therefore evade prediction.
Synchronization mechanisms, on the other hand, lead under adverse preconditions to conflicting access operations, which cannot be resolved, and therewith to violations of exacting real-time demands. Furthermore, the use of independent operating systems makes the use of synchronization mechanisms difficult. An approach of this kind therefore requires an alternative method.
Furthermore, virtual machines are not permanently available because other processes also have to be executed on a processor. In detail, this means that the virtual machine is stopped at irregular intervals to execute privileged commands or to use the computer time that has been freed thereby for other tasks (for example, host applications). In the general information technology (IT) environment, this does not constitute a problem because definitive response times are not expected here.
EP 0 363 905 A2 describes an input/output device for a programmable logic controller. The CPU of the programmable logic controller can be accessed by a user circuit. Access to the CPU using the user circuit is not enabled with a decision means if the CPU outputs a read or write signal.
US 2005/0246453 A1 relates to the direct access to computation apparatuses that are coupled to subordinate computation apparatuses.
US 2004/0098131 A1, furthermore, describes a software development platform with which a universal interface to a plurality of programmable logic controllers is enabled. This interface can be implemented by a device, such as a virtual machine.